package cn.myfirefly.moming.common.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.myfirefly.moming.common.dao.SystemConfigDao;
import cn.myfirefly.moming.common.entity.MmSystemConfig;
import cn.myfirefly.moming.common.model.MmSystemConfigDto;
import cn.myfirefly.moming.common.model.MmSystemConfigFilterDto;
import cn.myfirefly.core.Const;
import cn.myfirefly.core.model.PageResultDto;
import cn.myfirefly.utils.BeanUtil;

@Service
@Transactional
public class SystemConfigService {

	@Autowired
	private SystemConfigDao systemConfigDao;
	
	public PageResultDto<MmSystemConfig> getList(MmSystemConfigFilterDto dto) {
		
		return systemConfigDao.getList(dto);
	}
	
	public MmSystemConfigDto getMmSystemConfig(Integer id) {
		MmSystemConfig mmSystemConfig = systemConfigDao.get(id);
		MmSystemConfigDto mmSystemConfigDto = BeanUtil.copyBeans(MmSystemConfigDto.class, mmSystemConfig);
		return mmSystemConfigDto;
	}
	
	public String del(Integer id) {
		MmSystemConfig mmSystemConfig = systemConfigDao.get(id);
		if (mmSystemConfig == null) {
			return "该信息不存在，请尝试刷新列表后再操作。";
		}
		systemConfigDao.del(mmSystemConfig);
		return Const.ResultCode.SUCCESS;
	}
	
	public Integer insert(MmSystemConfigDto dto) {
		MmSystemConfig mmSystemConfig = systemConfigDao.get(dto.getSysId(), dto.getConfigKey());
		if (mmSystemConfig != null) {
			return -1;
		}
		mmSystemConfig = BeanUtil.copyBeans(MmSystemConfig.class, dto);
		return systemConfigDao.save(mmSystemConfig);
	}
	
	public Integer update(MmSystemConfigDto dto) {
		MmSystemConfig mmSystemConfig = systemConfigDao.get(dto.getId());
		if (mmSystemConfig == null) {
			return -1;
		}
		BeanUtil.copyBeans(dto, mmSystemConfig);
		return systemConfigDao.save(mmSystemConfig);
	}
	
	public String getConfigValue(Integer sysId, String configKey) {
		MmSystemConfig systemConfig = systemConfigDao.get(sysId, configKey);
		if (systemConfig != null) {
			return systemConfig.getConfigValue();
		}
		return null;
	}
}
